/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.manager;

import br.com.deployment.entidade.fermojupi.AtoItem;
import br.com.deployment.entidade.fermojupi.Emolumento;
import br.com.deployment.entidade.fermojupi.EmolumentoItem;
import br.com.deployment.servico.AtoItemServico;
import br.com.deployment.servico.EmolumentoItemServico;
import br.com.deployment.servico.EmolumentoServico;
import br.com.deployment.utilitario.Msg;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author roniere
 */
@ManagedBean
@SessionScoped
public class ManagerEmolumento implements Serializable{

    @EJB
    AtoItemServico atoItemServico;
    @EJB
    EmolumentoItemServico emolumentoItemServico;
    @EJB
    EmolumentoServico emolumentoServico;
    private Emolumento emolumento;
    private EmolumentoItem emolumentoItem;
    private List<EmolumentoItem> lstEmolItem;

    public ManagerEmolumento() {
    }

    @PostConstruct
    public void init() {
        
        emolumento = new Emolumento();
        emolumentoItem = new EmolumentoItem();
        lstEmolItem = new ArrayList<EmolumentoItem>();
    }

    public void reinit() {
        emolumento = new Emolumento();
        emolumentoItem = new EmolumentoItem();
        lstEmolItem = new ArrayList<EmolumentoItem>();
    }

    public List<AtoItem> completeAtoItem(String query) {
        List<AtoItem> bd = new ArrayList<AtoItem>();
        bd = atoItemServico.findAtoItem(query);
        return bd;
    }

    public List<EmolumentoItem> findCodAto(String cod){
        return emolumentoItemServico.findCodItemEmolumento(cod);
    }
    
    public void handleSelect(SelectEvent event) {
        AtoItem a = (AtoItem) event.getObject();
        emolumentoItem.setAtoItem(atoItemServico.find(a.getId()));
    }

    public void remove(EmolumentoItem ds) {
        lstEmolItem.remove(ds);
    }

    public void editar(EmolumentoItem ds) {
        emolumentoItem = ds;
        lstEmolItem.remove(ds);
    }

    public List<EmolumentoItem> getLstEmolItem() {
        return lstEmolItem;
    }

    public void setLstEmolItem(List<EmolumentoItem> lstEmolItem) {
        this.lstEmolItem = lstEmolItem;
    }

    public void addList() {
        emolumentoItem.setAtoItem(atoItemServico.find(emolumentoItem.getAtoItem().getId()));
        lstEmolItem.add(emolumentoItem);
        emolumentoItem = new EmolumentoItem();
    }

    public void salvar() {
        List<EmolumentoItem> itens = new ArrayList<EmolumentoItem>();
        for (EmolumentoItem emolumentoItem1 : lstEmolItem) {
             emolumentoItem1.setEmol(emolumento);
             itens.add(emolumentoItem1);
        }
        emolumento.setEmolItem(lstEmolItem);
        emolumentoServico.salvar(emolumento);
        Msg.messagemInfo("Emolumento salvo com sucesso.");
        reinit();
    }

    public void limparLista() {
        emolumentoItem = new EmolumentoItem();
    }

    public EmolumentoItem getEmolumentoItem() {
        return emolumentoItem;
    }

    public void setEmolumentoItem(EmolumentoItem emolumentoItem) {
        this.emolumentoItem = emolumentoItem;
    }

    public Emolumento getEmolumento() {
        return emolumento;
    }

    public void setEmolumento(Emolumento emolumento) {
        this.emolumento = emolumento;
    }

    public void redirect(String s) {
        try {
            FacesContext context = FacesContext.getCurrentInstance();
            context.getExternalContext().redirect(s);
            this.reinit();
        } catch (IOException ex) {
            Logger.getLogger(ManagerEmolumento.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
